/**
 * Clases que aparecen en el código
 * @author paco
 */
public class SimboloCampo extends Simbolo
{
	private boolean init;
	/**
	 * Nombre de la clase a la que pertenece el campo.
	 */
	private String clasePadre;
	/**
	 * Visibilidad del campo
	 */
	private boolean visibilidad;
	/**
	 * Constructor
	 * @param nombre Nombre de la clase
	 * @param tipo 
	 */
	public SimboloCampo(String nombre, Tipo tipo)
	{
		super(nombre, tipo);
		init = false;
	}

	public boolean isInit()
	{
		return init;
	}

	public void init()
	{
		this.init = true;
	}
	
	@Override
	public String toString()
	{
		StringBuilder sb = new StringBuilder();
		
		sb.append(".field ");
		if ( visibilidad )
			sb.append("public ");
		else
			sb.append("private ");
		sb.append(this.tipo.toWrite()).append(" '").append(this.nombre).append("'\n");
		
		return sb.toString();
	}

	@Override
	public boolean isVisible()
	{
		return visibilidad;
	}

	@Override
	public void setVisibilidad(boolean visibilidad)
	{
		this.visibilidad = visibilidad;
	}

	public String getClasePadre()
	{
		return clasePadre;
	}

	public void setClasePadre(String clasePadre)
	{
		this.clasePadre = clasePadre;
	}
	
	@Override
	public String toWrite()
	{
		return this.tipo.toWrite();
	}
	
	
	
}
